home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 2
/
Amiga Tools 2.iso
/
tools
/
mg
/
src.lzh
/
amiga
/
console.c
< prev
next >
Wrap
C/C++ Source or Header
|
1990-05-23
|
3KB
|
123 lines
/*
* These functions are taken directly from the console.device chapter in the
* Amiga V1.1 ROM Kernel Manual.
*/
#include <exec/types.h>
#include <exec/io.h>
#include <devices/console.h>
#include <libraries/dos.h>
#include <intuition/intuition.h>
#ifdef LATTICE
#include <proto/all.h>
#else
#include <functions.h>
#endif
#undef FALSE
#undef TRUE
#include "def.h"
#include "v11.h"
/*
* Open a console device, given a read request and a write request message.
*/
int
OpenConsole(writerequest, readrequest, window)
struct IOStdReq *writerequest;
struct IOStdReq *readrequest;
struct Window *window;
{
LONG error;
writerequest->io_Data = (APTR) window;
writerequest->io_Length = (ULONG) sizeof(*window);
error = OpenDevice("console.device", 0L, (struct IORequest *) writerequest, 0L);
/* clone required parts of the request */
if (readrequest) {
readrequest->io_Device = writerequest->io_Device;
readrequest->io_Unit = writerequest->io_Unit;
}
return ((int) error);
}
/*
* Output a single character to a specified console
*/
int
ConPutChar(request, character)
struct IOStdReq *request;
int character;
{
#ifdef V11
register int x;
#endif
request->io_Command = CMD_WRITE;
request->io_Data = (APTR) & character;
request->io_Length = (ULONG) 1;
DoIO((struct IORequest *) request);
/* caution: read comments in manual! */
return (0);
}
/*
* Output a NULL-terminated string of characters to a console
*/
int
ConPutStr(request, string)
struct IOStdReq *request;
char *string;
{
#ifdef V11
register int x;
#endif
request->io_Command = CMD_WRITE;
request->io_Data = (APTR) string;
request->io_Length = (LONG) - 1;
DoIO((struct IORequest *) request);
return (0);
}
/*
* Write out a string of predetermined length to the console
*/
int
ConWrite(request, string, len)
struct IOStdReq *request;
char *string;
int len;
{
#ifdef V11
register int x;
#endif
request->io_Command = CMD_WRITE;
request->io_Data = (APTR) string;
request->io_Length = (LONG) len;
DoIO((struct IORequest *) request);
return (0);
}
/*
* Queue up a read request to a console
*/
int
QueueRead(request, whereto)
struct IOStdReq *request;
char *whereto;
{
#ifdef V11
register int x;
#endif
request->io_Command = CMD_READ;
request->io_Data = (APTR) whereto;
request->io_Length = (LONG) 1;
SendIO((struct IORequest *) request);
return (0);
}